



import java.util.Scanner;

public class Main {
    static int[][] map;
    static int n, m;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextInt()) {
            n = scanner.nextInt();
            m = scanner.nextInt();
            int k = scanner.nextInt();
            map = new int[n + 1][m + 1];
            double[][] dp = new double[n + 1][m + 1];
            for (int i = 0; i < k; i++) {
                int a = scanner.nextInt();
                int b = scanner.nextInt();
                map[a][b] = 1;
            }
            dp[1][0] = 2;
            if(k == 0) {
                System.out.println("1.00");
                continue;
            }
            for (int i = 1; i <= n; i++) {
                for (int j = 1; j <= m; j++) {
                    if (map[i][j] == 0) {
                        dp[i][j] += (j == m ? dp[i-1][j] : dp[i - 1][j] / 2.0);
                    }
                    if (map[i][j] == 0) {
                        dp[i][j] += (i == n ? dp[i][j-1] : dp[i][j - 1] / 2.0);
                    }
                }
            }
            System.out.printf("%.2f\n",dp[n][m]);
        }
    }
}

